using Abp.Domain.Entities.Auditing;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
using Yozeev.UserManagerment.Users;

namespace Yozeev.BusinessLogic
{
    /// <summary>
    /// 航线
    /// </summary>
    public class Route: ByBranchEntity<Guid>
    {
        /// <summary>
        /// 航线名称
        /// </summary>
        [Required]
        public string RouteName { get; set; }
        /// <summary>
        /// 线路编号
        /// </summary>
        [Required]
        public long LineCode { get; set; }
        /// <summary>
        /// 线路介绍
        /// </summary>
        [Required]
        public string LineInfo { get; set; }
        /// <summary>
        /// 线路图
        /// </summary>
        [Required]
        public string LineImage { get; set; }
        /// <summary>
        /// 上船位置
        /// </summary>
        [Required]
        public string StartPosition { get; set; }
        /// <summary>
        /// 上船码头
        /// </summary>
        public Guid? StartWharfId { get; set; }
        [ForeignKey("StartWharfId")]
        public virtual Wharf StartWharf { get; set; }

        /// <summary>
        /// 下船位置
        /// </summary>
        [Required]
        public string EndPosition { get; set; }

        /// <summary>
        /// 上船码头
        /// </summary>
        public Guid? EndWharfId { get; set; }
        [ForeignKey("EndWharfId")]
        public virtual Wharf EndWharf { get; set; }
        /// <summary>
        /// 审核状态
        /// </summary>
        public AuditStatusEnum AuditStatus { get; set; }

        public virtual ICollection<Schedule> Schedules { get; set; }
    }
}
